package bean;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import mensagem.MsgCidade;
import session.SessionCargo;
import entity.Cargo;

@ManagedBean
@SessionScoped
public class BeanCargo {

	private Cargo cargo = new Cargo();

	private List<Cargo> cargos = new ArrayList<Cargo>();

	private Cargo filtro = new Cargo();

	private SessionCargo session = new SessionCargo();

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public BeanCargo() {

	}

	// //////////////////////////CONSTRUCTOR//////////////////////////////////////
	// ///////////////////////////////////////////////////////////////////////////

	public Cargo getCargo() {
		return cargo;
	}

	public void setCargo(Cargo cargo) {
		this.cargo = cargo;
	}

	public List<Cargo> getCargos() {
		return cargos;
	}

	public void setCargos(List<Cargo> cargos) {
		this.cargos = cargos;
	}

	public Cargo getFiltro() {
		return filtro;
	}

	public void setFiltro(Cargo filtro) {
		this.filtro = filtro;
	}

	public SessionCargo getSession() {
		return session;
	}

	public void setSession(SessionCargo session) {
		this.session = session;
	}

	// ******************************METODOS******************************
	// ***********************************************************************************
	// ******************************************************************************************

	public String save() throws Exception {
		if (this.cargo.getId() != null) {
			return this.update();
		}
		if (this.session.save(this.cargo)) {
			this.reinit();
			return MsgCidade.msgSave();
		}
		return "";
	}

	public String update() throws Exception {
		this.session.update(cargo);
		this.reinit();
		return MsgCidade.msgUpdate();
	}

	public void reinit() {
		this.cargo = new Cargo();
		this.cargos = new ArrayList<Cargo>();
		this.filtro = new Cargo();
	}

	public String remove() {
		try {
			this.session.remove(cargo);
			return MsgCidade.msgRemove();
		} catch (Exception e) {
			return MsgCidade.msgNotRemove();
		}
	}

	public void find() throws Exception {
		this.cargos = this.session.getController().findList(filtro);
	}

}
